iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 30
5
Software Development

擁抱「資料結構」的「演算法」系列 第 30

擁抱「資料結構」的「演算法」(30) - 完賽心得

  • 分享至 

  • xImage
  •  

前言

耶呼~~~ 終於 30 天了!喔耶!因為參加鐵人賽瘦了 2 公斤,因為寫文章實在太燒腦啦XDDD,一起來看看我的心得感想吧


心得

首先,非常謝謝 iT 邦幫忙鐵人賽,透過這 30 天,讓我好好的嗑了我念書時期的書跟筆記本(差點消化不良),從過程中了解到自己其實還有許多不懂的地方,需要好好認真面對,學會專業的內容之後,再進一步的內化並用自己的話說出來,透過舉例子(想謎題跟例子真的是想破頭XD),分享的動作加深自己的印象,透過 30 天的學習,真的明顯感受到自己的進步,非常開心,也謝謝大家的陪伴,如果有任何理解錯誤或不適合的內容請告訴我,讓我有機會改善 XD

再來想跟大家分享資料結構與演算法對我工作上的影響,原本的我早已把大學學過的東西通通還給老師了,等到真的發現自己在撰寫程式遇到瓶頸時,大概是畢業後的第 6 年,因為過程中其實大多是接觸前端畫面的處理,或是後端的資料庫存取,就是資料的呈現與儲存而已,等到開始接觸一些推薦系統或是 LeetCode 才發現我不會寫程式了耶!

發現自己對於如何將輸入的資料儲存成適合的資料結構會有障礙,因為資料結構會影響到後續程式排序資料或尋找資料的方便性,再來如何讀取特定的資料結構並將資料轉成自己想要呈現的結果,也卡關 XD,就像是二元樹如何使用陣列表示早知忘光,整個不知所以然,只能用慘字形容,只能好好 K 書,發現當年理解的並非真的理解

而演算法的部份更是悲慘到極點,基本排序通通不懂,剛好因為工作內容需要換成其他語言,發現比較底層的語言排序要自己寫耶,如何在一串數字中快速完成排序,又再次卡關,實在是很掉漆,頓時覺得資料結構真的很重要,這個觀念沒有架構好,演算法更是舉步維艱,覺得再這樣下去我可能工作不保,於是有開始念書,但過程中因為自己的拖延症又停擺了,剛好遇到鐵人賽,所以握緊機會參賽,果然滿載而歸

現在面對工作上的需求或是寫 LeetCode 都會先分析需求,再去了解題目的架構,需要搭配哪些資料結構來儲存相關的資料,最後再實作演算法的部分(甚至會有一些混和式的作法),讓結果符合需求,發現念書之後整個思考方式都改變了,感覺基礎觀念真的非常重要,像是求兩數的最大公因數,可以使用暴力法,也可以使用輾轉相除法,去分析兩者之間的優缺點,雖然說自己還有很多不太了解的部分,但會想繼續努力,去加強這些觀念,對於自己工作上或思考事情上面都有幫助,最大的部份應該是表達,試著用別人可以理解的方式去舉例子,而不是用自己堅持的對,去要求對方理解 XD

最後感謝我的家人,包容我 30 天,讓我可以好好的利用時間寫文章,而且我每一天都會請家人閱讀然後解謎題(好可憐XD),辛苦他們了,工作之餘還要看他們不懂的內容,感覺他們壓力好大,不過看著他們有順利通過謎題時,會覺得很開心,其實資料結構與演算法跟我們生活有許多連結,其實不像刻板印象中的那麼艱深,不過有一陣子家人會反映說他們看不懂程式碼,所以分享的內文大多是以觀念的部分在述說,程式碼的部分並沒有做說明,希望這些文章能夠讓初學者覺得資料結構與演算法是有趣的,而不是一開始就被程式碼嚇跑XD,回想到念書時期很多同學都是因為看到程式碼而放棄,連基礎觀念都還沒打好就因為誤解而離開了,真的蠻可惜的

最後的最後,謝謝資料結構與演算法陪我度過這 30 天,真的花了很多時間跟心力在跟這兩位打交道,我們應該是好朋友了(相擁而泣),也謝謝大家,下台一鞠躬(揮手)


回顧

30天的分享內容,分為兩大部分資料結構演算法

資料結構

演算法

畫圖

由於資料結構與演算法會使用到很多圖表,所以這段時間捲子袖子畫了很多張圖(擦汗),醜醜的還請大家見諒,還有每篇的謎題也有部分需要借助圖片,就來挑幾張來回顧一下吧XD
https://ithelp.ithome.com.tw/upload/images/20201014/20129841m3ag218yOA.png

昨日解謎

謎題說明:找出公里數最少的路徑,然後將各國國名的字首拼起來,就會得到DIJKSTRA就是戴克斯特拉演算法
https://ithelp.ithome.com.tw/upload/images/20201014/20129841hbDOcW3XTc.png


上一篇
擁抱「資料結構」的「演算法」(29) - 戴克斯特拉演算法求最短路徑
系列文
擁抱「資料結構」的「演算法」30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
hylin
iT邦新手 5 級 ‧ 2020-11-28 21:08:00

Algorithms + Data Structures = Programs,你醬超完備的,可以出書啦

小菜 iT邦新手 4 級 ‧ 2021-02-21 07:48:50 檢舉

挖~ 好喜歡你的公式哦!
謝謝你的鼓勵^^

1
lebniz
iT邦新手 5 級 ‧ 2021-03-03 13:55:19

鐵人賽這麼多屆,第一次非常認真看完還做筆記的系列文!
好喜歡作者淺顯易懂的說明方式,尤其生活化的例子讓人更能理解與吸收。
如系列文標題,文章真的是友善到可以擁抱它(哭)。獲益良多,非常感動!
(偷偷說,而且還很期待每天的小謎題。哈哈哈。)

小菜 iT邦新手 4 級 ‧ 2021-03-06 18:42:38 檢舉

看到你的留言讓我覺得很驚喜耶!謝謝你跟我分享你的閱讀心得~
其實參賽過程常常覺得自己是在自言自語XD,
沒想過會有人看完還參與解謎,真的很神奇,也很謝謝你的不嫌棄~
(偷偷說,其實每天最苦惱的就是:謎題要出什麼XD)

0
lionlai888
iT邦新手 5 級 ‧ 2022-09-23 10:55:57

特此留言,因為想考研的關係,所以買了X碩書來看,發現我有點看不懂,
幸運遇上作者這篇文章,非常喜歡作者用這種方式講解,特別是果汁機雜湊那段,
現在想到雜湊就想到水果渣XD

剛看完30天文章(應該還會再看一次加深記憶),
每日例題都有認真做,但有些不知道是我太笨,還是太跳TONE(就是笨別懷疑),
再次感謝作者的付出,之後我幸運考上研所,會效仿作者寫文章,造福下一位讀者。

小菜 iT邦新手 4 級 ‧ 2022-09-24 21:49:49 檢舉

很開心有幫助到你~
例題的部分當初可能絞盡腦汁過度,
所以內容可能真的蠻牽強的XD(不是你笨別懷疑)
謝謝你不嫌棄看完 30 篇,
在這邊先預祝你考上心目中的理想學校哦~

我要留言

立即登入留言